home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / config / Makefile < prev    next >
Makefile  |  2005-10-18  |  36KB  |  1,060 lines

  1. # Generated automatically from Makefile.pre by makesetup.
  2. # Top-level Makefile for Python
  3. #
  4. # As distributed, this file is called Makefile.pre.in; it is processed
  5. # into the real Makefile by running the script ./configure, which
  6. # replaces things like @spam@ with values appropriate for your system.
  7. # This means that if you edit Makefile, your changes get lost the next
  8. # time you run the configure script.  Ideally, you can do:
  9. #
  10. #    ./configure
  11. #    make
  12. #    make test
  13. #    make install
  14. #
  15. # If you have a previous version of Python installed that you don't
  16. # want to overwrite, you can use "make altinstall" instead of "make
  17. # install".  Refer to the "Installing" section in the README file for
  18. # additional details.
  19. #
  20. # See also the section "Build instructions" in the README file.
  21.  
  22. # === Variables set by makesetup ===
  23.  
  24. MODOBJS=          Modules/threadmodule.o  Modules/signalmodule.o  Modules/posixmodule.o  Modules/errnomodule.o  Modules/_sre.o  Modules/_codecsmodule.o  Modules/zipimport.o  Modules/symtablemodule.o  Modules/xxsubtype.o
  25. MODLIBS=        $(LOCALMODLIBS) $(BASEMODLIBS)
  26.  
  27. # === Variables set by configure
  28. VERSION=    2.4
  29. srcdir=        .
  30.  
  31.  
  32. CC=        i686-pc-linux-gnu-gcc -pthread
  33. CXX=        i686-pc-linux-gnu-g++ -pthread
  34. LINKCC=        $(PURIFY) $(CXX)
  35. AR=        ar
  36. RANLIB=        i686-pc-linux-gnu-ranlib
  37.  
  38. # Shell used by make (some versions default to the login shell, which is bad)
  39. SHELL=        /bin/sh
  40.  
  41. # Use this to make a link between python$(VERSION) and python in $(BINDIR)
  42. LN=        ln
  43.  
  44. # Portable install script (configure doesn't always guess right)
  45. INSTALL=    /bin/install -c
  46. INSTALL_PROGRAM=${INSTALL}
  47. INSTALL_SCRIPT= ${INSTALL}
  48. INSTALL_DATA=    ${INSTALL} -m 644
  49. # Shared libraries must be installed with executable mode on some systems;
  50. # rather than figuring out exactly which, we always give them executable mode.
  51. # Also, making them read-only seems to be a good idea...
  52. INSTALL_SHARED= ${INSTALL} -m 555
  53.  
  54. MAKESETUP=      $(srcdir)/Modules/makesetup
  55.  
  56. # Compiler options
  57. OPT=-DNDEBUG
  58. BASECFLAGS=     -fno-strict-aliasing
  59. CFLAGS=        $(BASECFLAGS) $(OPT)
  60. CPPFLAGS=    -I. -I$(srcdir)/Include
  61. LDFLAGS=    
  62. LDLAST=        
  63. SGI_ABI=    
  64. CCSHARED=    -fPIC
  65. LINKFORSHARED=    -Xlinker -export-dynamic
  66. # Extra C flags added for building the interpreter object files.
  67. CFLAGSFORSHARED=$(CCSHARED)
  68. # C flags used for building the interpreter object files
  69. PY_CFLAGS=    $(CFLAGS) $(CPPFLAGS) $(CFLAGSFORSHARED) -DPy_BUILD_CORE
  70.  
  71.  
  72. # Machine-dependent subdirectories
  73. MACHDEP=    linux2
  74.  
  75. # Install prefix for architecture-independent files
  76. prefix=        /usr
  77.  
  78. # Install prefix for architecture-dependent files
  79. exec_prefix=    ${prefix}
  80.  
  81. # Expanded directories
  82. BINDIR=        $(exec_prefix)/bin
  83. LIBDIR=        $(exec_prefix)/lib
  84. MANDIR=        ${prefix}/share/man
  85. INCLUDEDIR=    ${prefix}/include
  86. CONFINCLUDEDIR=    $(exec_prefix)/include
  87. SCRIPTDIR=    $(prefix)/lib
  88.  
  89. # Detailed destination directories
  90. BINLIBDEST=    $(LIBDIR)/python$(VERSION)
  91. LIBDEST=    $(SCRIPTDIR)/python$(VERSION)
  92. INCLUDEPY=    $(INCLUDEDIR)/python$(VERSION)
  93. CONFINCLUDEPY=    $(CONFINCLUDEDIR)/python$(VERSION)
  94. LIBP=        $(LIBDIR)/python$(VERSION)
  95.  
  96. # Symbols used for using shared libraries
  97. SO=        .so
  98. LDSHARED=    $(CC) -shared
  99. BLDSHARED=    $(CC) -shared
  100. DESTSHARED=    $(BINLIBDEST)/lib-dynload
  101.  
  102. # Executable suffix (.exe on Windows and Mac OS X)
  103. EXE=        
  104. BUILDEXE=    
  105.  
  106. # Short name and location for Mac OS X Python framework
  107. PYTHONFRAMEWORK=    
  108. PYTHONFRAMEWORKDIR=    no-framework
  109. PYTHONFRAMEWORKPREFIX=    
  110. PYTHONFRAMEWORKINSTALLDIR= 
  111. # Deployment target selected during configure, to be checked
  112. # by distutils
  113. CONFIGURE_MACOSX_DEPLOYMENT_TARGET=
  114. # Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
  115. OTHER_LIBTOOL_OPT=
  116.  
  117. # Environment to run shared python without installed libraries
  118. RUNSHARED=       LD_LIBRARY_PATH=/var/tmp/portage/python-2.4.2/work/Python-2.4.2:
  119.  
  120. # Modes for directories, executables and data files created by the
  121. # install process.  Default to user-only-writable for all file types.
  122. DIRMODE=    755
  123. EXEMODE=    755
  124. FILEMODE=    644
  125.  
  126. # configure script arguments
  127. CONFIG_ARGS=    '--prefix=/usr' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--build=i686-pc-linux-gnu' '--with-fpectl' '--enable-shared' '--enable-ipv6' '--infodir=${prefix}/share/info' '--mandir=${prefix}/share/man' '--with-threads' '--with-libc=' '--enable-unicode=ucs4' 'CFLAGS=-Os -mcpu=i686 -pipe' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu'
  128.  
  129.  
  130. # Subdirectories with code
  131. SRCDIRS=     Parser Grammar Objects Python Modules Mac Mac/Python
  132.  
  133. # Other subdirectories
  134. SUBDIRSTOO=    Include Lib Misc Demo
  135.  
  136. # Files and directories to be distributed
  137. CONFIGFILES=    configure configure.in acconfig.h pyconfig.h.in Makefile.pre.in
  138. DISTFILES=    README ChangeLog $(CONFIGFILES)
  139. DISTDIRS=    $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
  140. DIST=        $(DISTFILES) $(DISTDIRS)
  141.  
  142.  
  143. LIBRARY=    libpython$(VERSION).a
  144. LDLIBRARY=      libpython$(VERSION).so
  145. BLDLIBRARY=     -L. -lpython$(VERSION)
  146. DLLLIBRARY=    
  147. LDLIBRARYDIR=   
  148. INSTSONAME=    libpython$(VERSION).so.1.0
  149.  
  150.  
  151. LIBS=        -lpthread -ldl  -lutil
  152. LIBM=        -lm
  153. LIBC=        
  154. SYSLIBS=    $(LIBM) $(LIBC)
  155. SHLIBS=        $(LIBS)
  156.  
  157. MAINOBJ=    python.o
  158. THREADOBJ=    Python/thread.o
  159. DLINCLDIR=    .
  160. DYNLOADFILE=    dynload_shlib.o
  161. MACHDEP_OBJS=    
  162. UNICODE_OBJS=   Objects/unicodeobject.o Objects/unicodectype.o
  163.  
  164. PYTHON=        python$(EXE)
  165. BUILDPYTHON=    python$(BUILDEXE)
  166.  
  167. # === Definitions added by makesetup ===
  168.  
  169. LOCALMODLIBS=         
  170. BASEMODLIBS=
  171. DBLIB=$(DB)/lib
  172. GLHACK=-Dclear=__GLclear
  173. PYTHONPATH=$(COREPYTHONPATH)
  174. COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)$(MACHDEPPATH)$(EXTRAMACHDEPPATH)$(TKPATH)
  175. TKPATH=:lib-tk
  176. EXTRAMACHDEPPATH=
  177. MACHDEPPATH=:plat-$(MACHDEP)
  178. TESTPATH=
  179. SITEPATH=
  180. DESTPATH=
  181. MACHDESTLIB=$(BINLIBDEST)
  182. DESTLIB=$(LIBDEST)
  183.  
  184.  
  185.  
  186. ##########################################################################
  187. # Modules
  188. MODULE_OBJS=    \
  189.         Modules/config.o \
  190.         Modules/getpath.o \
  191.         Modules/main.o \
  192.         Modules/gcmodule.o
  193.  
  194. # Used of signalmodule.o is not available
  195. SIGNAL_OBJS=    
  196.  
  197.  
  198. ##########################################################################
  199. # Grammar
  200. GRAMMAR_H=    $(srcdir)/Include/graminit.h
  201. GRAMMAR_C=    $(srcdir)/Python/graminit.c
  202. GRAMMAR_INPUT=    $(srcdir)/Grammar/Grammar
  203.  
  204.  
  205. ##########################################################################
  206. # Parser
  207. PGEN=        Parser/pgen$(EXE)
  208.  
  209. POBJS=        \
  210.         Parser/acceler.o \
  211.         Parser/grammar1.o \
  212.         Parser/listnode.o \
  213.         Parser/node.o \
  214.         Parser/parser.o \
  215.         Parser/parsetok.o \
  216.         Parser/bitset.o \
  217.         Parser/metagrammar.o \
  218.         Parser/firstsets.o \
  219.         Parser/grammar.o \
  220.         Parser/pgen.o
  221.  
  222. PARSER_OBJS=    $(POBJS) Parser/myreadline.o Parser/tokenizer.o
  223.  
  224. PGOBJS=        \
  225.         Objects/obmalloc.o \
  226.         Python/mysnprintf.o \
  227.         Parser/tokenizer_pgen.o \
  228.         Parser/printgrammar.o \
  229.         Parser/pgenmain.o
  230.  
  231. PGENOBJS=    $(PGENMAIN) $(POBJS) $(PGOBJS)
  232.  
  233.  
  234. ##########################################################################
  235. # Python
  236. PYTHON_OBJS=    \
  237.         Python/bltinmodule.o \
  238.         Python/exceptions.o \
  239.         Python/ceval.o \
  240.         Python/compile.o \
  241.         Python/codecs.o \
  242.         Python/errors.o \
  243.         Python/frozen.o \
  244.         Python/frozenmain.o \
  245.         Python/future.o \
  246.         Python/getargs.o \
  247.         Python/getcompiler.o \
  248.         Python/getcopyright.o \
  249.         Python/getmtime.o \
  250.         Python/getplatform.o \
  251.         Python/getversion.o \
  252.         Python/graminit.o \
  253.         Python/import.o \
  254.         Python/importdl.o \
  255.         Python/marshal.o \
  256.         Python/modsupport.o \
  257.         Python/mystrtoul.o \
  258.         Python/mysnprintf.o \
  259.         Python/pyfpe.o \
  260.         Python/pystate.o \
  261.         Python/pythonrun.o \
  262.         Python/structmember.o \
  263.         Python/symtable.o \
  264.         Python/sysmodule.o \
  265.         Python/traceback.o \
  266.         Python/getopt.o \
  267.         Python/pystrtod.o \
  268.         Python/$(DYNLOADFILE) \
  269.         $(MACHDEP_OBJS) \
  270.         $(THREADOBJ)
  271.  
  272.  
  273. ##########################################################################
  274. # Objects
  275. OBJECT_OBJS=    \
  276.         Objects/abstract.o \
  277.         Objects/boolobject.o \
  278.         Objects/bufferobject.o \
  279.         Objects/cellobject.o \
  280.         Objects/classobject.o \
  281.         Objects/cobject.o \
  282.         Objects/complexobject.o \
  283.         Objects/descrobject.o \
  284.         Objects/enumobject.o \
  285.         Objects/genobject.o \
  286.         Objects/fileobject.o \
  287.         Objects/floatobject.o \
  288.         Objects/frameobject.o \
  289.         Objects/funcobject.o \
  290.         Objects/intobject.o \
  291.         Objects/iterobject.o \
  292.         Objects/listobject.o \
  293.         Objects/longobject.o \
  294.         Objects/dictobject.o \
  295.         Objects/methodobject.o \
  296.         Objects/moduleobject.o \
  297.         Objects/object.o \
  298.         Objects/obmalloc.o \
  299.         Objects/rangeobject.o \
  300.                 Objects/setobject.o \
  301.         Objects/sliceobject.o \
  302.         Objects/stringobject.o \
  303.         Objects/structseq.o \
  304.         Objects/tupleobject.o \
  305.         Objects/typeobject.o \
  306.         Objects/weakrefobject.o \
  307.         $(UNICODE_OBJS)
  308.  
  309.  
  310. ##########################################################################
  311. # objects that get linked into the Python library
  312. LIBRARY_OBJS=    \
  313.         Modules/getbuildinfo.o \
  314.         $(PARSER_OBJS) \
  315.         $(OBJECT_OBJS) \
  316.         $(PYTHON_OBJS) \
  317.         $(MODULE_OBJS) \
  318.         $(SIGNAL_OBJS) \
  319.         $(MODOBJS)
  320.  
  321. #########################################################################
  322. # Rules
  323.  
  324. # Default target
  325. all:        $(BUILDPYTHON) oldsharedmods sharedmods
  326.  
  327. # Build the interpreter
  328. $(BUILDPYTHON):    Modules/$(MAINOBJ) $(LIBRARY) $(LDLIBRARY)
  329.         $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
  330.             Modules/$(MAINOBJ) \
  331.             $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
  332.  
  333. platform: $(BUILDPYTHON)
  334.     $(RUNSHARED) ./$(BUILDPYTHON) -E -c 'import sys ; from distutils.util import get_platform ; print get_platform()+"-"+sys.version[0:3]' >platform
  335.  
  336.  
  337. # Build the shared modules
  338. sharedmods: $(BUILDPYTHON)
  339.     case $$MAKEFLAGS in \
  340.     *-s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \
  341.     *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \
  342.     esac
  343.  
  344. # buildno should really depend on something like LIBRARY_SRC
  345. buildno: $(PARSER_OBJS) \
  346.         $(OBJECT_OBJS) \
  347.         $(PYTHON_OBJS) \
  348.         $(MODULE_OBJS) \
  349.         $(SIGNAL_OBJS) \
  350.         $(MODOBJS) \
  351.         $(srcdir)/Modules/getbuildinfo.c
  352.     if test -f buildno; then \
  353.         expr `cat buildno` + 1 >buildno1; \
  354.         mv -f buildno1 buildno; \
  355.     else echo 1 >buildno; fi
  356.  
  357. # Build static library
  358. # avoid long command lines, same as LIBRARY_OBJS
  359. $(LIBRARY): $(LIBRARY_OBJS)
  360.     -rm -f $@
  361.     $(AR) cr $@ Modules/getbuildinfo.o
  362.     $(AR) cr $@ $(PARSER_OBJS)
  363.     $(AR) cr $@ $(OBJECT_OBJS)
  364.     $(AR) cr $@ $(PYTHON_OBJS)
  365.     $(AR) cr $@ $(MODULE_OBJS) $(SIGNAL_OBJS)
  366.     $(AR) cr $@ $(MODOBJS)
  367.     $(RANLIB) $@
  368.  
  369. libpython$(VERSION).so: $(LIBRARY_OBJS)
  370.     if test $(INSTSONAME) != $(LDLIBRARY); then \
  371.         $(LDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
  372.         $(LN) -f $(INSTSONAME) $@; \
  373.     else\
  374.         $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
  375.     fi
  376.  
  377. libpython$(VERSION).sl: $(LIBRARY_OBJS)
  378.     $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(LIBC) $(LIBM)
  379.  
  380. # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
  381. # minimal framework (not including the Lib directory and such) in the current
  382. # directory.
  383. RESSRCDIR=$(srcdir)/Mac/OSXResources/framework
  384. $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
  385.         $(LIBRARY) \
  386.         $(RESSRCDIR)/Info.plist \
  387.                 $(RESSRCDIR)/version.plist \
  388.                 $(RESSRCDIR)/English.lproj/InfoPlist.strings
  389.     $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
  390.     libtool -o $(LDLIBRARY) -dynamic $(OTHER_LIBTOOL_OPT) $(LIBRARY) \
  391.         
  392.     $(INSTALL) -d -m $(DIRMODE)  \
  393.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
  394.     $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
  395.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
  396.     $(INSTALL_DATA) $(RESSRCDIR)/version.plist \
  397.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/version.plist
  398.     $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \
  399.         $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj/InfoPlist.strings
  400.     $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
  401.     $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
  402.     $(LN) -fsn Versions/Current/Headers $(PYTHONFRAMEWORKDIR)/Headers
  403.     $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
  404.  
  405. # This rule builds the Cygwin Python DLL and import library if configured
  406. # for a shared core library; otherwise, this rule is a noop.
  407. $(DLLLIBRARY) libpython$(VERSION).dll.a: $(LIBRARY_OBJS)
  408.     if test -n "$(DLLLIBRARY)"; then \
  409.         $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
  410.             $(LIBS) $(MODLIBS) $(SYSLIBS); \
  411.     else true; \
  412.     fi
  413.  
  414.  
  415. oldsharedmods: $(SHAREDMODS)
  416.  
  417.  
  418. Makefile Modules/config.c: Makefile.pre \
  419.                 $(srcdir)/Modules/config.c.in \
  420.                 $(MAKESETUP) \
  421.                 Modules/Setup.config \
  422.                 Modules/Setup \
  423.                 Modules/Setup.local
  424.     $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
  425.                 -s Modules \
  426.                 Modules/Setup.config \
  427.                 Modules/Setup.local \
  428.                 Modules/Setup
  429.     @mv config.c Modules
  430.     @echo "The Makefile was updated, you may need to re-run make."
  431.  
  432.  
  433. Modules/Setup: $(srcdir)/Modules/Setup.dist
  434.     @if test -f Modules/Setup; then \
  435.         echo "-----------------------------------------------"; \
  436.         echo "Modules/Setup.dist is newer than Modules/Setup;"; \
  437.         echo "check to make sure you have all the updates you"; \
  438.         echo "need in your Modules/Setup file."; \
  439.         echo "Usually, copying Setup.dist to Setup will work."; \
  440.         echo "-----------------------------------------------"; \
  441.     fi
  442.  
  443. ############################################################################
  444. # Special rules for object files
  445.  
  446. Modules/getbuildinfo.o: $(srcdir)/Modules/getbuildinfo.c buildno
  447.     $(CC) -c $(PY_CFLAGS) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
  448.  
  449. Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
  450.     $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
  451.         -DPREFIX='"$(prefix)"' \
  452.         -DEXEC_PREFIX='"$(exec_prefix)"' \
  453.         -DVERSION='"$(VERSION)"' \
  454.         -DVPATH='"$(VPATH)"' \
  455.         -o $@ $(srcdir)/Modules/getpath.c
  456.  
  457. Modules/ccpython.o: $(srcdir)/Modules/ccpython.cc
  458.     $(CXX) -c $(PY_CFLAGS) -o $@ $(srcdir)/Modules/ccpython.cc
  459.  
  460.  
  461. $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT)
  462.         -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)
  463.  
  464. $(PGEN):    $(PGENOBJS)
  465.         $(CC) $(OPT) $(LDFLAGS) $(PGENOBJS) $(LIBS) -o $(PGEN)
  466.  
  467. Parser/grammar.o:    $(srcdir)/Parser/grammar.c \
  468.                 $(srcdir)/Include/token.h \
  469.                 $(srcdir)/Include/grammar.h
  470. Parser/metagrammar.o:    $(srcdir)/Parser/metagrammar.c
  471.  
  472. Parser/tokenizer_pgen.o:    $(srcdir)/Parser/tokenizer.c
  473.  
  474.  
  475. Python/compile.o Python/symtable.o: $(GRAMMAR_H)
  476.  
  477. Python/getplatform.o: $(srcdir)/Python/getplatform.c
  478.         $(CC) -c $(PY_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
  479.  
  480. Python/importdl.o: $(srcdir)/Python/importdl.c
  481.         $(CC) -c $(PY_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
  482.  
  483. Objects/unicodectype.o:    $(srcdir)/Objects/unicodectype.c \
  484.                 $(srcdir)/Objects/unicodetype_db.h
  485.  
  486. ############################################################################
  487. # Header files
  488.  
  489. PYTHON_HEADERS= \
  490.         Include/Python.h \
  491.         Include/abstract.h \
  492.         Include/boolobject.h \
  493.         Include/bufferobject.h \
  494.         Include/ceval.h \
  495.         Include/classobject.h \
  496.         Include/cobject.h \
  497.         Include/codecs.h \
  498.         Include/compile.h \
  499.         Include/complexobject.h \
  500.         Include/descrobject.h \
  501.         Include/dictobject.h \
  502.         Include/enumobject.h \
  503.         Include/genobject.h \
  504.         Include/fileobject.h \
  505.         Include/floatobject.h \
  506.         Include/funcobject.h \
  507.         Include/import.h \
  508.         Include/intobject.h \
  509.         Include/intrcheck.h \
  510.         Include/iterobject.h \
  511.         Include/listobject.h \
  512.         Include/longobject.h \
  513.         Include/methodobject.h \
  514.         Include/modsupport.h \
  515.         Include/moduleobject.h \
  516.         Include/object.h \
  517.         Include/objimpl.h \
  518.         Include/patchlevel.h \
  519.         Include/pydebug.h \
  520.         Include/pyerrors.h \
  521.         Include/pyfpe.h \
  522.         Include/pymem.h \
  523.         Include/pyport.h \
  524.         Include/pystate.h \
  525.         Include/pythonrun.h \
  526.         Include/rangeobject.h \
  527.                 Include/setobject.h \
  528.         Include/sliceobject.h \
  529.         Include/stringobject.h \
  530.         Include/structseq.h \
  531.         Include/structmember.h \
  532.         Include/symtable.h \
  533.         Include/sysmodule.h \
  534.         Include/traceback.h \
  535.         Include/tupleobject.h \
  536.         Include/unicodeobject.h \
  537.         Include/weakrefobject.h \
  538.         pyconfig.h
  539.  
  540. $(LIBRARY_OBJS) $(MODOBJS) Modules/$(MAINOBJ): $(PYTHON_HEADERS)
  541.  
  542.  
  543. ######################################################################
  544.  
  545. # Test the interpreter (twice, once without .pyc files, once with)
  546. # In the past, we've had problems where bugs in the marshalling or
  547. # elsewhere caused bytecode read from .pyc files to behave differently
  548. # than bytecode generated directly from a .py source file.  Sometimes
  549. # the bytecode read from a .pyc file had the bug, somtimes the directly
  550. # generated bytecode.  This is sometimes a very shy bug needing a lot of
  551. # sample data.
  552.  
  553. TESTOPTS=    -l
  554. TESTPROG=    $(srcdir)/Lib/test/regrtest.py
  555. TESTPYTHON=    $(RUNSHARED) ./$(BUILDPYTHON) -E -tt
  556. test:        all platform
  557.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  558.         -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
  559.         $(TESTPYTHON) $(TESTPROG) $(TESTOPTS)
  560.  
  561. testall:    all platform
  562.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  563.         -$(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall
  564.         $(TESTPYTHON) $(TESTPROG) $(TESTOPTS) -uall
  565.  
  566. QUICKTESTOPTS=    $(TESTOPTS) -x test_thread test_signal test_strftime \
  567.         test_unicodedata test_re test_sre test_select test_poll \
  568.         test_linuxaudiodev test_struct test_sunaudiodev test_zlib
  569. quicktest:    all platform
  570.         -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
  571.         -$(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
  572.         $(TESTPYTHON) $(TESTPROG) $(QUICKTESTOPTS)
  573.  
  574. MEMTESTOPTS=    $(QUICKTESTOPTS) -x test_dl test___all__ test_fork1 \
  575.         test_longexp
  576. memtest:    all platform
  577.         -rm -f $(srcdir)/Lib/test/*.py[co]
  578.         -$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
  579.         $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
  580.  
  581. # Install everything
  582. install:    altinstall bininstall maninstall
  583.  
  584. # Install almost everything without disturbing previous versions
  585. altinstall:    altbininstall libinstall inclinstall libainstall \
  586.                 sharedinstall oldsharedinstall
  587.  
  588. # Install shared libraries enabled by Setup
  589. DESTDIRS=    $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
  590.  
  591. oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
  592.         @for i in X $(SHAREDMODS); do \
  593.           if test $$i != X; then \
  594.             echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
  595.             $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
  596.           fi; \
  597.         done
  598.  
  599. $(DESTSHARED):
  600.         @for i in $(DESTDIRS); \
  601.         do \
  602.             if test ! -d $(DESTDIR)$$i; then \
  603.                 echo "Creating directory $$i"; \
  604.                 $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  605.             else    true; \
  606.             fi; \
  607.         done
  608.  
  609.  
  610. # Install the interpreter (by creating a hard link to python$(VERSION))
  611. bininstall:    altbininstall
  612.     -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \
  613.     then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
  614.     else true; \
  615.     fi
  616.     (cd $(DESTDIR)$(BINDIR); $(LN) python$(VERSION)$(EXE) $(PYTHON))
  617.  
  618. # Install the interpreter with $(VERSION) affixed
  619. # This goes into $(exec_prefix)
  620. altbininstall:    $(BUILDPYTHON)
  621.     @if test "$(PYTHONFRAMEWORKDIR)" != no-framework; then \
  622.         if test ! -f $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current/Resources/Info.plist; then \
  623.             echo 'Framework build: use "make frameworkinstall" in stead of "make install"'; \
  624.             exit 1; \
  625.         fi; \
  626.     fi
  627.     @for i in $(BINDIR) $(LIBDIR); \
  628.     do \
  629.         if test ! -d $(DESTDIR)$$i; then \
  630.             echo "Creating directory $$i"; \
  631.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  632.         else    true; \
  633.         fi; \
  634.     done
  635.     $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE)
  636.     if test -f libpython$(VERSION)$(SO); then \
  637.         if test "$(SO)" = .dll; then \
  638.             $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(BINDIR); \
  639.         else \
  640.             $(INSTALL_SHARED) libpython$(VERSION)$(SO) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
  641.             if test libpython$(VERSION)$(SO) != $(INSTSONAME); then \
  642.                 (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) libpython$(VERSION)$(SO)); \
  643.             fi \
  644.         fi; \
  645.     else    true; \
  646.     fi
  647.  
  648. # Install the manual page
  649. maninstall:
  650.     @for i in $(MANDIR) $(MANDIR)/man1; \
  651.     do \
  652.         if test ! -d $(DESTDIR)$$i; then \
  653.             echo "Creating directory $$i"; \
  654.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  655.         else    true; \
  656.         fi; \
  657.     done
  658.     $(INSTALL_DATA) $(srcdir)/Misc/python.man \
  659.         $(DESTDIR)$(MANDIR)/man1/python.1
  660.  
  661. # Install the library
  662. PLATDIR=    plat-$(MACHDEP)
  663. EXTRAPLATDIR= 
  664. EXTRAMACHDEPPATH=
  665. MACHDEPS=    $(PLATDIR) $(EXTRAPLATDIR)
  666. XMLLIBSUBDIRS=  xml xml/dom xml/parsers xml/sax
  667. PLATMACDIRS= plat-mac plat-mac/Carbon plat-mac/lib-scriptpackages \
  668.     plat-mac/lib-scriptpackages/_builtinSuites \
  669.     plat-mac/lib-scriptpackages/CodeWarrior \
  670.     plat-mac/lib-scriptpackages/Explorer \
  671.     plat-mac/lib-scriptpackages/Finder \
  672.     plat-mac/lib-scriptpackages/Netscape \
  673.     plat-mac/lib-scriptpackages/StdSuites \
  674.     plat-mac/lib-scriptpackages/SystemEvents \
  675.     plat-mac/lib-scriptpackages/Terminal
  676. PLATMACPATH=:plat-mac:plat-mac/lib-scriptpackages
  677. LIBSUBDIRS=    lib-old lib-tk site-packages test test/output test/data \
  678.         test/decimaltestdata \
  679.         encodings email email/test email/test/data compiler hotshot \
  680.         logging bsddb bsddb/test csv idlelib idlelib/Icons \
  681.         distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
  682.         curses $(MACHDEPS)
  683. libinstall:    $(BUILDPYTHON) $(srcdir)/Lib/$(PLATDIR)
  684.     @for i in $(SCRIPTDIR) $(LIBDEST); \
  685.     do \
  686.         if test ! -d $(DESTDIR)$$i; then \
  687.             echo "Creating directory $$i"; \
  688.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  689.         else    true; \
  690.         fi; \
  691.     done
  692.     @for d in $(LIBSUBDIRS); \
  693.     do \
  694.         a=$(srcdir)/Lib/$$d; \
  695.         if test ! -d $$a; then continue; else true; fi; \
  696.         b=$(LIBDEST)/$$d; \
  697.         if test ! -d $(DESTDIR)$$b; then \
  698.             echo "Creating directory $$b"; \
  699.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
  700.         else    true; \
  701.         fi; \
  702.     done
  703.     @for i in $(srcdir)/Lib/*.py $(srcdir)/Lib/*.doc; \
  704.     do \
  705.         if test -x $$i; then \
  706.             $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
  707.             echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
  708.         else \
  709.             $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
  710.             echo $(INSTALL_DATA) $$i $(LIBDEST); \
  711.         fi; \
  712.     done
  713.     @for d in $(LIBSUBDIRS); \
  714.     do \
  715.         a=$(srcdir)/Lib/$$d; \
  716.         if test ! -d $$a; then continue; else true; fi; \
  717.         b=$(LIBDEST)/$$d; \
  718.         for i in $$a/*; \
  719.         do \
  720.             case $$i in \
  721.             *CVS) ;; \
  722.             *.py[co]) ;; \
  723.             *.orig) ;; \
  724.             *~) ;; \
  725.             *) \
  726.                 if test -d $$i; then continue; fi; \
  727.                 if test -x $$i; then \
  728.                     echo $(INSTALL_SCRIPT) $$i $$b; \
  729.                     $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
  730.                 else \
  731.                     echo $(INSTALL_DATA) $$i $$b; \
  732.                     $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
  733.                 fi;; \
  734.             esac; \
  735.         done; \
  736.     done
  737.     $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
  738.     PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
  739.         ./$(BUILDPYTHON) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
  740.         -d $(LIBDEST) -f \
  741.         -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  742.     PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  743.         ./$(BUILDPYTHON) -Wi -tt -O $(DESTDIR)$(LIBDEST)/compileall.py \
  744.         -d $(LIBDEST) -f \
  745.         -x 'badsyntax|site-packages' $(DESTDIR)$(LIBDEST)
  746.     -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
  747.         ./$(BUILDPYTHON) -Wi -t $(DESTDIR)$(LIBDEST)/compileall.py \
  748.         -d $(LIBDEST)/site-packages -f \
  749.         -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  750.     -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
  751.         ./$(BUILDPYTHON) -Wi -t -O $(DESTDIR)$(LIBDEST)/compileall.py \
  752.         -d $(LIBDEST)/site-packages -f \
  753.         -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
  754.  
  755. # Create the PLATDIR source directory, if one wasn't distributed..
  756. $(srcdir)/Lib/$(PLATDIR):
  757.     mkdir $(srcdir)/Lib/$(PLATDIR)
  758.     cp $(srcdir)/Lib/plat-generic/regen $(srcdir)/Lib/$(PLATDIR)/regen
  759.     export PATH; PATH="`pwd`:$$PATH"; \
  760.     export PYTHONPATH; PYTHONPATH="`pwd`/Lib"; \
  761.     export DYLD_FRAMEWORK_PATH; DYLD_FRAMEWORK_PATH="`pwd`"; \
  762.     export EXE; EXE="$(BUILDEXE)"; \
  763.     cd $(srcdir)/Lib/$(PLATDIR); ./regen
  764.  
  765. # Install the include files
  766. INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
  767. inclinstall:
  768.     @for i in $(INCLDIRSTOMAKE); \
  769.     do \
  770.         if test ! -d $(DESTDIR)$$i; then \
  771.             echo "Creating directory $$i"; \
  772.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  773.         else    true; \
  774.         fi; \
  775.     done
  776.     @for i in $(srcdir)/Include/*.h; \
  777.     do \
  778.         echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
  779.         $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
  780.     done
  781.     $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
  782.  
  783. # Install the library and miscellaneous stuff needed for extending/embedding
  784. # This goes into $(exec_prefix)
  785. LIBPL=        $(LIBP)/config
  786. libainstall:    all
  787.     @for i in $(LIBDIR) $(LIBP) $(LIBPL); \
  788.     do \
  789.         if test ! -d $(DESTDIR)$$i; then \
  790.             echo "Creating directory $$i"; \
  791.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  792.         else    true; \
  793.         fi; \
  794.     done
  795.     @if test -d $(LIBRARY); then :; else \
  796.         if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
  797.             if test "$(SO)" = .dll; then \
  798.                 $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
  799.             else \
  800.                 $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
  801.                 $(RANLIB) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
  802.             fi; \
  803.         else \
  804.             echo Skip install of $(LIBRARY) - use make frameworkinstall; \
  805.         fi; \
  806.     fi
  807.     $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
  808.     $(INSTALL_DATA) Modules/$(MAINOBJ) $(DESTDIR)$(LIBPL)/$(MAINOBJ)
  809.     $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
  810.     $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
  811.     $(INSTALL_DATA) Modules/Setup $(DESTDIR)$(LIBPL)/Setup
  812.     $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
  813.     $(INSTALL_DATA) Modules/Setup.config $(DESTDIR)$(LIBPL)/Setup.config
  814.     $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
  815.     $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
  816.     @if [ -s Modules/python.exp -a \
  817.         "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
  818.         echo; echo "Installing support files for building shared extension modules on AIX:"; \
  819.         $(INSTALL_DATA) Modules/python.exp        \
  820.                 $(DESTDIR)$(LIBPL)/python.exp;        \
  821.         echo; echo "$(LIBPL)/python.exp";        \
  822.         $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix    \
  823.                 $(DESTDIR)$(LIBPL)/makexp_aix;        \
  824.         echo "$(LIBPL)/makexp_aix";            \
  825.         $(INSTALL_SCRIPT) $(srcdir)/Modules/ld_so_aix    \
  826.                 $(DESTDIR)$(LIBPL)/ld_so_aix;        \
  827.         echo "$(LIBPL)/ld_so_aix";            \
  828.         echo; echo "See Misc/AIX-NOTES for details.";    \
  829.     else true; \
  830.     fi
  831.     @case "$(MACHDEP)" in beos*) \
  832.         echo; echo "Installing support files for building shared extension modules on BeOS:"; \
  833.         $(INSTALL_DATA) Misc/BeOS-NOTES $(DESTDIR)$(LIBPL)/README;    \
  834.         echo; echo "$(LIBPL)/README";            \
  835.         $(INSTALL_SCRIPT) Modules/ar_beos $(DESTDIR)$(LIBPL)/ar_beos; \
  836.         echo "$(LIBPL)/ar_beos";            \
  837.         $(INSTALL_SCRIPT) Modules/ld_so_beos $(DESTDIR)$(LIBPL)/ld_so_beos; \
  838.         echo "$(LIBPL)/ld_so_beos";            \
  839.         echo; echo "See Misc/BeOS-NOTES for details.";    \
  840.         ;; \
  841.     esac
  842.  
  843. # Install the dynamically loadable modules
  844. # This goes into $(exec_prefix)
  845. sharedinstall:
  846.     $(RUNSHARED) ./$(BUILDPYTHON) -E $(srcdir)/setup.py install \
  847.            --prefix=$(prefix) \
  848.         --install-scripts=$(BINDIR) \
  849.         --install-platlib=$(DESTSHARED) \
  850.         --root=/$(DESTDIR)
  851.  
  852. # Here are a couple of targets for MacOSX again, to install a full
  853. # framework-based Python. frameworkinstall installs everything, the
  854. # subtargets install specific parts. Much of the actual work is offloaded to
  855. # the Makefile in Mac/OSX
  856. #
  857. frameworkinstall: frameworkinstallframework \
  858.     frameworkinstallapps frameworkinstallunixtools
  859.  
  860. # On install, we re-make the framework
  861. # structure in the install location, /Library/Frameworks/ or the argument to
  862. # --enable-framework. If --enable-framework has been specified then we have
  863. # automatically set prefix to the location deep down in the framework, so we
  864. # only have to cater for the structural bits of the framework.
  865.  
  866. frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
  867.  
  868. frameworkinstallstructure:    $(LDLIBRARY)
  869.     @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
  870.         echo Not configured with --enable-framework; \
  871.         exit 1; \
  872.     else true; \
  873.     fi
  874.     @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
  875.         if test ! -d $(DESTDIR)$$i; then \
  876.             echo "Creating directory $(DESTDIR)$$i"; \
  877.             $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
  878.         else    true; \
  879.         fi; \
  880.     done
  881.     $(LN) -fsn include/python$(VERSION) $(DESTDIR)$(prefix)/Headers
  882.     $(INSTALL_DATA) $(RESSRCDIR)/Info.plist $(DESTDIR)$(prefix)/Resources/Info.plist
  883.     $(INSTALL_DATA) $(RESSRCDIR)/version.plist $(DESTDIR)$(prefix)/Resources/version.plist
  884.     $(INSTALL_DATA) $(RESSRCDIR)/English.lproj/InfoPlist.strings \
  885.         $(DESTDIR)$(prefix)/Resources/English.lproj/InfoPlist.strings
  886.     $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
  887.     $(LN) -fsn Versions/Current/Python $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Python
  888.     $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
  889.     $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
  890.     $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
  891.  
  892. # This installs Mac/Lib into the framework
  893. frameworkinstallmaclib:
  894.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installmacsubtree \
  895.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  896.         srcdir=$(srcdir) builddir=. prefix=$(prefix) LIBDEST=$(LIBDEST) \
  897.         DESTDIR=$(DESTDIR)
  898.  
  899. # This installs the IDE, the Launcher and other apps into /Applications
  900. frameworkinstallapps:
  901.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installapps \
  902.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  903.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix)
  904.  
  905. # This install the unix python and pythonw tools in /usr/local/bin
  906. frameworkinstallunixtools:
  907.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installunixtools \
  908.         DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  909.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR) prefix=$(prefix)
  910.  
  911. # This installs the Demos and Tools into the applications directory.
  912. # It is not part of a normal frameworkinstall
  913. frameworkinstallextras:
  914.     $(MAKE) -f $(srcdir)/Mac/OSX/Makefile installextras \
  915.         $(RUNSHARED) BUILDPYTHON=./$(BUILDPYTHON) DIRMODE=$(DIRMODE) FILEMODE=$(FILEMODE) \
  916.         srcdir=$(srcdir) builddir=. DESTDIR=$(DESTDIR)
  917.  
  918. # This installs a few of the useful scripts in Tools/scripts
  919. scriptsinstall:
  920.     SRCDIR=$(srcdir) $(RUNSHARED) \
  921.     ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/setup.py install \
  922.     --prefix=$(prefix) \
  923.     --install-scripts=$(BINDIR) \
  924.     --root=/$(DESTDIR)
  925.  
  926. # Build the toplevel Makefile
  927. Makefile.pre: Makefile.pre.in config.status
  928.     CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
  929.     $(MAKE) -f Makefile.pre Makefile
  930.  
  931. # Run the configure script.
  932. config.status:    $(srcdir)/configure
  933.     $(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
  934.  
  935. .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
  936.  
  937. # Some make's put the object file in the current directory
  938. .c.o:
  939.     $(CC) -c $(PY_CFLAGS) -o $@ $<
  940.  
  941. # Rerun configure with the same options as it was run last time,
  942. # provided the config.status script exists
  943. recheck:
  944.     $(SHELL) config.status --recheck
  945.     $(SHELL) config.status
  946.  
  947. # Rebuild the configure script from configure.in; also rebuild pyconfig.h.in
  948. autoconf:
  949.     (cd $(srcdir); autoconf)
  950.     (cd $(srcdir); autoheader)
  951.  
  952. # Create a tags file for vi
  953. tags::
  954.     cd $(srcdir); \
  955.     ctags -w -t Include/*.h; \
  956.     for i in $(SRCDIRS); do ctags -w -t -a $$i/*.[ch]; \
  957.     done; \
  958.     sort -o tags tags
  959.  
  960. # Create a tags file for GNU Emacs
  961. TAGS::
  962.     cd $(srcdir); \
  963.     etags Include/*.h; \
  964.     for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
  965.  
  966. # Sanitation targets -- clean leaves libraries, executables and tags
  967. # files, which clobber removes those as well
  968.  
  969. clean:
  970.     find . -name '*.o' -exec rm -f {} ';'
  971.     find . -name '*.s[ol]' -exec rm -f {} ';'
  972.     find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
  973.  
  974. clobber: clean
  975.     -rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
  976.         tags TAGS \
  977.         config.cache config.log pyconfig.h Modules/config.c
  978.     -rm -rf build platform
  979.     -rm -rf $(PYTHONFRAMEWORKDIR)
  980.  
  981. # Make things extra clean, before making a distribution:
  982. # remove all generated files, even Makefile[.pre]
  983. distclean: clobber
  984.     -rm -f core Makefile Makefile.pre buildno config.status \
  985.         Modules/Setup Modules/Setup.local Modules/Setup.config
  986.     find $(srcdir) '(' -name '*.fdc' -o -name '*~' \
  987.                -o -name '[@,#]*' -o -name '*.old' \
  988.                -o -name '*.orig' -o -name '*.rej' \
  989.                -o -name '*.bak' ')' \
  990.                -exec rm -f {} ';'
  991.  
  992. # Check for smelly exported symbols (not starting with Py/_Py)
  993. smelly: all
  994.     nm -p $(LIBRARY) | \
  995.         sed -n "/ [TDB] /s/.* //p" | grep -v "^_*Py" | sort -u; \
  996.  
  997. # Find files with funny names
  998. funny:
  999.     find $(DISTDIRS) -type d \
  1000.         -o -name '*.[chs]' \
  1001.         -o -name '*.py' \
  1002.         -o -name '*.doc' \
  1003.         -o -name '*.sty' \
  1004.         -o -name '*.bib' \
  1005.         -o -name '*.dat' \
  1006.         -o -name '*.el' \
  1007.         -o -name '*.fd' \
  1008.         -o -name '*.in' \
  1009.         -o -name '*.tex' \
  1010.         -o -name '*,[vpt]' \
  1011.         -o -name 'Setup' \
  1012.         -o -name 'Setup.*' \
  1013.         -o -name README \
  1014.         -o -name Makefile \
  1015.         -o -name ChangeLog \
  1016.         -o -name Repository \
  1017.         -o -name Root \
  1018.         -o -name Entries \
  1019.         -o -name Tag \
  1020.         -o -name tags \
  1021.         -o -name TAGS \
  1022.         -o -name .cvsignore \
  1023.         -o -name MANIFEST \
  1024.         -o -print
  1025.  
  1026. # Dependencies
  1027.  
  1028. Python/thread.o:  $(srcdir)/Python/thread_atheos.h $(srcdir)/Python/thread_beos.h $(srcdir)/Python/thread_cthread.h $(srcdir)/Python/thread_foobar.h $(srcdir)/Python/thread_lwp.h $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_os2.h $(srcdir)/Python/thread_pth.h $(srcdir)/Python/thread_pthread.h $(srcdir)/Python/thread_sgi.h $(srcdir)/Python/thread_solaris.h $(srcdir)/Python/thread_wince.h
  1029.  
  1030. # Declare targets that aren't real files
  1031. .PHONY: all sharedmods oldsharedmods test quicktest memtest
  1032. .PHONY: install altinstall oldsharedinstall bininstall altbininstall
  1033. .PHONY: maninstall libinstall inclinstall libainstall sharedinstall
  1034. .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
  1035. .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
  1036. .PHONY: recheck autoconf clean clobber distclean smelly funny
  1037.  
  1038. # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
  1039.  
  1040. # Rules appended by makedepend
  1041.  
  1042. Modules/threadmodule.o: $(srcdir)/Modules/threadmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/threadmodule.c -o Modules/threadmodule.o
  1043. Modules/threadmodule$(SO):  Modules/threadmodule.o; $(LDSHARED)  Modules/threadmodule.o   -o Modules/threadmodule$(SO)
  1044. Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
  1045. Modules/signalmodule$(SO):  Modules/signalmodule.o; $(LDSHARED)  Modules/signalmodule.o   -o Modules/signalmodule$(SO)
  1046. Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
  1047. Modules/posixmodule$(SO):  Modules/posixmodule.o; $(LDSHARED)  Modules/posixmodule.o   -o Modules/posixmodule$(SO)
  1048. Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
  1049. Modules/errnomodule$(SO):  Modules/errnomodule.o; $(LDSHARED)  Modules/errnomodule.o   -o Modules/errnomodule$(SO)
  1050. Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
  1051. Modules/_sre$(SO):  Modules/_sre.o; $(LDSHARED)  Modules/_sre.o   -o Modules/_sre$(SO)
  1052. Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
  1053. Modules/_codecsmodule$(SO):  Modules/_codecsmodule.o; $(LDSHARED)  Modules/_codecsmodule.o   -o Modules/_codecsmodule$(SO)
  1054. Modules/zipimport.o: $(srcdir)/Modules/zipimport.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/zipimport.c -o Modules/zipimport.o
  1055. Modules/zipimport$(SO):  Modules/zipimport.o; $(LDSHARED)  Modules/zipimport.o   -o Modules/zipimport$(SO)
  1056. Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
  1057. Modules/_symtablemodule$(SO):  Modules/symtablemodule.o; $(LDSHARED)  Modules/symtablemodule.o   -o Modules/_symtablemodule$(SO)
  1058. Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_CFLAGS)  -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
  1059. Modules/xxsubtype$(SO):  Modules/xxsubtype.o; $(LDSHARED)  Modules/xxsubtype.o   -o Modules/xxsubtype$(SO)
  1060.